Learn R Programming

oce (version 1.0-1)

[[,landsat-method: Extract Something From a landsat Object

Description

The [[ method works for all oce objects, i.e. objects inheriting from oce-class. The purpose is to insulate users from the internal details of oce objects, by looking for items within the various storage slots of the object. Items not actually stored can also be extracted, including derived data, units of measurement, and data-quality flags.

Usage

# S4 method for landsat
[[(x, i, j, ...)

Arguments

x

An landsat object, i.e. one inheriting from landsat-class.

i

Character string indicating the name of item to extract.

j

Optional additional information on the i item.

...

Optional additional information (ignored).

Details of the general method

If the specialized method produces no matches, the following generalized method is applied. As with the specialized method, the procedure hinges first on the value of i.

First, a check is made as to whether i names one of the standard oce slots, and returns the slot contents if so. Thus, x[["metadata"]] will retrieve the metadata slot, while x[["data"]] and x[["processingLog"]] return those slots.

Next, if i is a string ending in the "Unit", then the characters preceding that string are taken to be the name of an item in the data object, and a list containing the unit is returned. This list consists of an item named unit, which is an expression, and an item named scale, which is a string describing the measurement scale. If the string ends in " unit", e.g. x[["temperature unit"]], then just the expression is returned, and if it ends in " scale", then just the scale is returned.

Next, if i is a string ending in "Flag", then the corresponding data-quality flag is returned (or NULL if there is no such flag). For example, x[["salinityFlag"]] returns a vector of salinity flags if x is a ctd object.

If none of the preceding conditions are met, a check is done to see if the metadata slot contains an item with the provided name, and that is returned, if so. A direct match is required for this condition.

Finally, the data slot is checked to see if it contains an item with the name indicated by i. In this case, a partial match will work; this is accomplished by using pmatch.

If none of the above-listed conditions holds, then NULL is returned.

Details of the specialized <code>landsat</code> method

Users are isolated from the details of the two-byte storage system by using the [[ operator.

Accessing band data. The data may be accessed with e.g. landsat[["panchromatic"]], for the panchromatic band. If a new ``band'' is added with landsatAdd, it may be referred by name. In all cases, a second argument can be provided, to govern decimation. If this is missing, all the relevant data are returned. If this is present and equal to TRUE, then the data will be automatically decimated (subsampled) to give approximately 800 elements in the longest side of the matrix. If this is present and numerical, then its value governs decimation. For example, landsat[["panchromatic",TRUE]] will auto-decimate, typically reducing the grid width and height from 16000 to about 800. Similarly, landsat[["panchromatic",10]] will reduce width and height to about 1600. On machines with limited RAM (e.g. under about 6GB), decimation is a good idea in almost all processing steps. It also makes sense for plotting, and in fact is done through the decimate argument of plot,landsat-method.

Accessing derived data. One may retrieve several derived quantities that are calculated from data stored in the object: landsat[["longitude"]] and landsat[["latitude"]] give pixel locations. Accessing landsat[["temperature"]] creates an estimate of ground temperature as follows (see [4]). First, the ``count value'' in band 10, denoted \(b_{10}\) say, is scaled with coefficients stored in the image metadata using \(\lambda_L=b_{10}M_L+A_L\) where \(M_L\) and \(A_L\) are values stored in the metadata (e.g. the first in landsat@metadata$header$radiance_mult_band_10) Then the result is used, again with coefficients in the metadata, to compute Celcius temperature \(T=K_2/ln(\epsilon K_1/\lambda_L+1)-273.15\). The value of the emissivity \(\epsilon\) is set to unity by read.landsat, although it can be changed easily later, by assigning a new value to landsat@metadata$emissivity. The default emissivity value set by read.landsat is from [11], and is within the oceanic range suggested by [5]. Adjustment is as simple as altering landsat@metadata$emissivity. This value can be a single number meant to apply for the whole image, or a matrix with dimensions matching those of band 10. The matrix case is probably more useful for images of land, where one might wish to account for the different emissivities of soil and vegetation, etc.; for example, Table 4 of [9] lists 0.9668 for soil and 0.9863 for vegetation, while Table 5 of [10] lists 0.971 and 0.987 for the same quantities.

Accessing metadata. Anything in the metadata can be accessed by name, e.g. landsat[["time"]]. Note that some items are simply copied over from the source data file and are not altered by e.g. decimation. An exception is the lat-lon box, which is altered by landsatTrim.

Details

A two-step process is used to try to find the requested information. First, a class-specific function tries to find it (see “Details of the specialized ... method”), but if that fails, then a general function is used (see ‘Details of the general method’). If both fail, NULL is returned.

See Also

Other functions that extract parts of oce objects: [[,adp-method, [[,adv-method, [[,amsr-method, [[,argo-method, [[,bremen-method, [[,cm-method, [[,coastline-method, [[,ctd-method, [[,echosounder-method, [[,g1sst-method, [[,gps-method, [[,ladp-method, [[,lisst-method, [[,lobo-method, [[,met-method, [[,odf-method, [[,rsk-method, [[,sealevel-method, [[,section-method, [[,tidem-method, [[,topo-method, [[,windrose-method, [[<-,adv-method

Other things related to landsat data: [[<-,landsat-method, landsat-class, landsatAdd, landsatTrim, landsat, plot,landsat-method, read.landsat, summary,landsat-method